//
//  ViewController.m
//  Copy
//
//  Created by 崔博 on 2018/9/17.
//  Copyright © 2018年 崔博. All rights reserved.
//

#import "ViewController.h"
#import "Person.h"
@interface ViewController ()

@end

@implementation ViewController

// 拷贝的目的：产生一个副本对象，跟袁对象互不影响
// 修改袁对象，不会影响副本对象
// 修改副本对象，不会形象源对象

- (void)viewDidLoad {
    [super viewDidLoad];

    Person * p = [[Person alloc] init];
    p.data = @[@"1",@"2"];
    NSLog(@"%@",p.data);
    
}

void test()
{
    
    NSString * str1 = [NSString stringWithFormat:@"test"];
    NSString * str2 = [str1 copy]; // 返回的NSString
    NSString * str3 = [str1 mutableCopy];// 返回的 NSMutableString
    
    NSLog(@"%@---%@---%@",str1,str2,str3);
    
    
}
void test1()
{
    NSString * str1 = [[NSString alloc] initWithFormat:@"test"];
    NSString * str2 = [str1 copy];
    NSString * str3 = [str1 mutableCopy];
    
    NSLog(@"%p---%p---%p",str1, str2, str3);
    
    [str1 release];
    [str2 release];
    [str3 release];
}
void test2()
{
    NSArray *array1 = [[NSArray alloc] initWithObjects:@"a",@"b", nil];
    NSArray * array2 = [array1 copy]; // 浅拷贝
    NSArray * array3 = [array1 mutableCopy]; // 深拷贝
    NSLog(@"%p---%p---%p",array1,array2,array3);
    [array1 release];
    [array2 release];
    [array3 release];
}
void test3()
{
    NSArray *array1 = [[NSArray alloc] initWithObjects:@"a",@"b", nil];
    NSArray * array2 = [array1 copy]; // 浅拷贝
    NSArray * array3 = [array1 mutableCopy]; // 深拷贝
    NSLog(@"%p---%p---%p",array1,array2,array3);
    [array1 release];
    [array2 release];
    [array3 release];
}
@end
